import java.util.Random;
import java.util.Scanner;

public class LoginAndRegister {
    static Scanner sc = new Scanner(System.in); // 全局变量，成员变量
    static boolean isRegister=false;//注册标记
    static boolean isLogin=false;//登录标记
    static String username="";//用户名
    static String key="";//密码
    static int yzm=0;//卡号
    public static void main(String[] args) {
        while (true) {
            showMenu();
            //yes继续no退出非y非n请重输
            String flag=null;
            System.out.print("继续吗？(y/n):");
            flag = sc.next();
            while(!flag.equals("y")&&!flag.equals("n")) {
                System.out.print("继续吗？(y/n):");
                flag = sc.next();
            }
            if(flag.equals("n")) {
                System.out.println("系统退出，谢谢使用！");
                System.exit(0); // 退出程序
            }

        }

    }

    public static void showMenu() {

        System.out.println("****欢迎进入奖客富翁系统****");
        System.out.println("       1:注册 ");
        System.out.println("       2:登录");
        System.out.println("       3:抽奖");
        System.out.println("**********************");
        System.out.print("请选择菜单:");
        int choise = sc.nextInt();
        switch (choise) {
            case 1:
                register();// 调用注册功能
                break;
            case 2:
                login();// 调用登录功能
                break;
            case 3:
                lucky();// 调用抽奖功能
                break;
            default:
                System.out.println("您的选择有误！");
                break;
        }

    }

    //抽奖方法的定义
    private static void lucky() {
        System.out.println("抽奖功能");
        Random rd=new Random();
       if(isRegister){
           if (isLogin){
               int []luckynumbers=new int[5];
               int i=0;
               System.out.println("请输入您的卡号:");
               int yzm_2 = sc.nextInt();
               while (yzm != yzm_2) {
                   System.out.println("您的卡号输入错误，请重新输入");
                   yzm_2 = sc.nextInt();
               }
               for(i=0;i<5;i++){
                   int luckyNumber = rd.nextInt(9000) + 1000; // 保证是4位数（1000到9999之间）
                   // 将随机数存放到数组的相应位置
                   luckynumbers[i] = luckyNumber;
               }
               System.out.println("本日的幸运数字为：");
               for (i=0;i<5;i++) {
                   System.out.println(luckynumbers[i]+"\t");//打印幸运数字
               }

               for (i=0;i<5;i++) {
                   if (luckynumbers[i] == yzm) {
                       System.out.println("恭喜您成为本日幸运会员！");
                       return;
                   }
               }

               System.out.println("很遗憾，您不是本日幸运会员。");


           }else{
               System.out.println("您尚未登录，请先注登录");
           }
       }else{
           System.out.println("您尚未注册，请先注册");
       }

    }

    // 登录方法的定义
    private static void login() {
        if(isRegister) {//判断是否注册
            System.out.println("登录功能");
            for (int i = 0; i < 3; i++) {
                System.out.print("请输入用户名: ");
                String username_2 = sc.next();
                System.out.print("请输入密码: ");
                String password = sc.next();

                if (username_2.equals(username) && password.equals(key)) {//判断密码或用户名填写是否正确
                    System.out.println("欢迎您:"+username);
                    isLogin=true;
                    return;
                } else {
                    System.out.println("用户名或密码错误，您还有 " + (2 - i) + " 次机会");
                }
            }
            System.out.println("您错误次数过多。游戏退出");
            return;
        }else {
            System.out.println("您尚未注册，请先注册");
        }

    }

    // 注册方法的定义
    private static void register() {
        System.out.println("注册功能");
        System.out.println("请填写个人注册信息：");
        System.out.println("用户名：");
        username=sc.next();
        System.out.println("密码：");
        key=sc.next();
        Random sc=new Random();
        yzm=sc.nextInt(9000)+1000;
        System.out.println("注册成功，请记好您的会员卡号");
        System.out.println("用户名\t密码\t会员卡号" );
        System.out.println(username+"\t"+key+"\t"+yzm);
        isRegister=true;

    }
}
